<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS</title>
    <script>
        //1. js中定义函数
        function test01(){
            console.log("hello,world")
        }
        //2. js中定义数据类型
        //js: 弱类型语言，不进行类型检查
        function test02(){
            let str = "hello,world"
            console.log(typeof str)     // string
            str = 123
            console.log(typeof str)     // number: 包含整数与小数
            str = 1.23
            console.log(typeof str)     // number: 包含整数与小数
            str = {}
            console.log(typeof str)     // object: 对象类型
            str = []
            console.log('str类型：',str.constructor)   // Array类型：
            str = function(){}
            console.log('str类型：',str.constructor)   // Function类型
            console.log('str类型：',typeof abc)        //  undefined类型
        }
        //3. js数据类型的转换-整数与字符串之间的互相转换
        function test03(){
            let str = "123"
            //let i = parseInt(str)                     // 第一种转换方法： 将字符串转换为整数，遇到非数字就停止转换
            //console.log('i = ',i + 1,typeof i)
            //let num = Number(str)                     // 第二种转换方法：遇到非数字转换失败，返回NaN(not a number), 其数据类型是Number
            // console.log("num = ", num,typeof num)
            let num = str * 1                            // 第三种转换方法:只适用于纯数字类型的字符串
            // console.log("num = ", num,typeof num)
            console.log("num = ", num,typeof num)
        }
        //4. js数据类型的转换-小数与字符串之间的互相转换
        function test04(){
            let str = "1.23abc"
            let i = parseFloat(str)                   // 第一种转换方法： 将字符串转换为整数，遇到非数字就停止转换
            console.log('i = ',i + 1,typeof i)
            let num = Number(str)                     // 第二种转换方法：遇到非数字转换失败，返回NaN(not a number), 其数据类型是Number
            console.log("num = ", num,typeof num)
        }
        //5. 布尔型的转换
        function test05(){
            //5.1 有如下几种会被自动转换为false
            // let a = 0            //情况一：
            //let a = ''            //情况二：
            // let a = null         //情况三：
            // let a = undefined    //情况四：
            let a = NaN             //情况五：
           // let b = !!a           //转换方法一：
           //  let b = Boolean(a)   //转换方法二：
            console.log("b = ",b)
        }
        // test01()
        // test02()
        test03()
        // test04()
        // test05()
    </script>
</head>
<body>

</body>
</html>